--[[
    函数：yjx_search_switch_db
    功能：切换 online db 和 offline db
    返回：线上db的编号，1或者2
--]]

-- ########################################################

-- 记录线上 db(搜索正在使用的 db) 的 key
local ONLINE_DB = "yjx_online_db"
-- 记录线下 db(未在使用的 db) 的 key
local OFFLINE_DB = "yjx_offline_db"

-- 记录线下 db 缓存建立的开始时间和结束时间
local BUILD_CACHE_START = "yjx_build_cache_start"
local BUILD_CACHE_END = "yjx_build_cache_end"

-- ########################################################
local ret = 0
local s = redis.call('get',ONLINE_DB)
local c = redis.call('get',OFFLINE_DB)
if( (not s) or (not c) )
then
    -- 如果配置项目不存在，则初始化之
    string.set_search_config(ONLINE_DB, 1, OFFLINE_DB, 2)
    ret=1
else
    -- 如果配置存在，则切换之
    local s_ = tonumber(s) or 0
    if(s_==1)
    then
        string.set_search_config(ONLINE_DB, 2, OFFLINE_DB, 1)
        ret=2
    else
        string.set_search_config(ONLINE_DB, 1, OFFLINE_DB, 2)
        ret=1
    end

    -- 清空 config 中记录缓存状态的 key
    redis.call("del", BUILD_CACHE_START);
    redis.call("del", BUILD_CACHE_END);
end

-- ########################################################
return ret